#ifndef SCENES_SCENEMAINMENU_H
#define SCENES_SCENEMAINMENU_H

#include "gdn/GDN.h"
#include "dialogs/Dialog.h"
#include "gui/GUI.h"
#include "GameApplication.h"

class SceneMainMenu : public gdn::Scene
{
	public:
		SceneMainMenu( GameApplication& theApp );

		virtual void Initialize();
		virtual void Terminate();

		virtual void Step( gdn::Window& window );
		virtual void Draw( gdn::Window& window );

		template < typename T >
		void OpenDialog()
		{
			if ( IsDialogOpen() )
			{
				CloseDialog();
			}
			currentDialog = new T( App, *this );
			currentDialog->Initialize();
		}
		bool IsDialogOpen();
		void CloseDialog();

	protected:
		GameApplication& App;

		gdn::Sprite splash;

		gui::Button playButton;
		gui::Button helpButton;
		gui::Button configButton;
		gui::Button quitButton;

		gdn::Sprite dialogTransparency;
		Dialog* currentDialog;
};

#endif // SCENES_SCENEMAINMENU_H
